home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / OEMNADWD.IN_ / oemnadwd.inf
INI File  |  1996-07-12  |  31KB  |  806 lines

  1. [Identification]
  2.     OptionType = NetAdapter
  3. [PlatformsSupported]
  4.     ISA
  5.     EISA
  6.     "Jazz-Internal Bus"
  7. [Options]
  8.     SMCISA
  9. [FileConstants]
  10. ParamInf        = "NCPARAM.INF"
  11. UtilityInf      = "UTILITY.INF"
  12. subroutineinf   = "SUBROUTN.INF"
  13. SoftwareType    = "driver"
  14. Exit_Code       = 0
  15. NetEventDLL     = "%SystemRoot%\System32\netevent.dll"
  16. IoLogMsgDLL     = "%SystemRoot%\System32\IoLogMsg.dll"
  17. EthernetCards  = { SMCISA }
  18. TokenRingCards = { WD8115TR }
  19. Manufacturer    = "Microsoft"
  20. ProductMajorVersion     = "4"
  21. ProductMinorVersion     = "0"
  22. ProductVersion  = $(ProductMajorVersion)"."$(ProductMinorVersion)
  23. ProductSoftwareName     = "SMC8000N"
  24. ProductSoftwareImagePath = "\SystemRoot\System32\drivers\smcisa.sys"
  25. NetRuleSoftwareType     = "smc8000nSys ndisDriver smc8000nDriver"
  26. NetRuleSoftwareUse      = $(SoftwareType)
  27. NetRuleSoftwareBindForm = """Smc8000nDriver"" yes no container"
  28. NetRuleSoftwareClass    = {"smc8000nDriver basic"}
  29. ProductHardwareName     = $(Option)
  30. NetRuleHardwareType     = "smcisa smcisaAdapter"
  31. NetRuleHardwareBindForm = " yes yes container"
  32. NetRuleHardwareClass    = {"smcisaAdapter basic"}
  33. ProductOpSupport     = 134 
  34. ProductKeyName  = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  35. ParamKeyName    = $(!NTN_ServiceBase)$(ProductHardwareName)"\Parameters"
  36. [GeneralConstants]
  37. from      = ""
  38. to        = ""
  39. ExitCodeOk     = 0
  40. ExitCodeCancel = 1
  41. ExitCodeFatal  = 2
  42. KeyNull         = ""
  43. MAXIMUM_ALLOWED   = 33554432
  44. SERVICE_NO_CHANGE = 4294967295
  45. RegistryErrorIndex = NO_ERROR
  46. KeyProduct      = ""
  47. KeyParameters   = ""
  48. TRUE            = 1
  49. FALSE           = 0
  50. NoTitle            = 0
  51. ExitState   = "Active"
  52. OldVersionExisted = $(FALSE)
  53. DriverPath      = $(!STF_NTPATH)\drivers
  54. [date]
  55.     Now = {} ? $(!LIBHANDLE) GetSystemDate
  56. [Identify]
  57.     read-syms Identification
  58.     set Status     = STATUS_SUCCESSFUL
  59.     set Identifier = $(OptionType)
  60.     set Media      = #("Source Media Descriptions", 1, 1)
  61.     Return $(Status) $(Identifier) $(Media)
  62. [ReturnOptions]
  63.     set Status        = STATUS_FAILED
  64.     set OptionList     = {}
  65.     set OptionTextList = {}
  66.     set LanguageList = ^(LanguagesSupported, 1)
  67.     Ifcontains(i) $($0) in $(LanguageList)
  68.         ifstr(i) $($1) == ""
  69.            goto returnoptions
  70.         endif
  71.         set PlatformList = ^(PlatformsSupported, 1)
  72.         Ifcontains(i) $($1) in $(PlatformList)
  73.            goto returnoptions
  74.         else
  75.            set Status = STATUS_NOTSUPPORTED
  76.            goto finish_ReturnOptions
  77.         endif
  78.     else
  79.         set Status = STATUS_NOLANGUAGE
  80.         goto finish_ReturnOptions
  81.     endif
  82. returnoptions = +
  83.     set OptionList     = ^(Options, 1)
  84.     set OptionTextList = ^(OptionsText$($0), 1)
  85.     set Status         = STATUS_SUCCESSFUL
  86. finish_ReturnOptions = +
  87.     Return $(Status) $(OptionList) $(OptionTextList)
  88. [InstallOption]
  89.     set Option   = $($1)
  90.     set SrcDir   = $($2)
  91.     set AddCopy  = $($3)
  92.     set DoCopy   = $($4)
  93.     set DoConfig = $($5)
  94.     set LanguageList = ^(LanguagesSupported, 1)
  95.     Ifcontains(i) $($0) NOT-IN $(LanguageList)
  96.         Return STATUS_NOLANGUAGE
  97.     endif
  98.     Debug-Output "OEMNADWD.INF: STF_CWDIR is: "$(!STF_CWDIR)
  99.     Debug-Output "OEMNADWD.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
  100.     set-subst LF = "\n"
  101.     read-syms GeneralConstants
  102.     read-syms FileConstants
  103.     Shell $(UtilityInf), GetBindingInfo, "WD"
  104.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  105.         Debug-Output "ShellCode error: cannot get an error string."
  106.         goto ShellCodeError
  107.     endif
  108.     set NetRuleSoftwareBindable = $($R1)
  109.     read-syms DialogConstants$(!STF_LANGUAGE)
  110.     ifstr(i) $(!NTN_Origination) == "NCPA"
  111.         set Continue = $(OK)
  112.     endif
  113.     read-syms FileConstants$(!STF_LANGUAGE)
  114.     detect date
  115.     set-title  $(FunctionTitle)
  116.     set to   = Begin
  117.     set from = Begin
  118.     set CommonStatus = STATUS_SUCCESSFUL
  119.     EndWait
  120. Begin = +
  121.     set ActivateDetection = FALSE
  122.     Ifstr(i) $(!NTN_InstallMode) == deinstall
  123.         set StartLabel = removeadapter
  124.     else-Ifstr(i) $(!NTN_InstallMode) == Update
  125.         set StartLabel = UpgradeSoftware
  126.     else-Ifstr(i) $(!NTN_InstallMode) == bind
  127.         set StartLabel = bindingadapter
  128.     else-Ifstr(i) $(!NTN_InstallMode) == configure
  129.         set CommonStatus = STATUS_REBOOT
  130.         set ActivateDetection = TRUE
  131.         set StartLabel = configureadapter
  132.         Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  133.             Debug-Output "Cannot configure the DEC 100 driver software."
  134.             Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  135.             ifint $($ShellCode) != $(!SHELL_CODE_OK)
  136.                 Debug-Output "ShellCode error: cannot get an error string."
  137.                 goto ShellCodeError
  138.             endif
  139.             set Error = $($R0)
  140.             set from = end
  141.             set to = end
  142.             goto nonfatalinfo
  143.         endif
  144.     else
  145.         set StartLabel = installadapter
  146.         set OEM_ABANDON_OPTIONS = {}
  147.         set OEM_ABANDON_SOFTWARE = FALSE
  148.         set OEM_ABANDON_ON = TRUE
  149.         set ActivateDetection = TRUE
  150.     endif
  151.     Debug-Output "OEMNADWD.INF: =================================================="
  152.     Debug-Output "OEMNADWD.INF: STF_CWDIR is: "$(!STF_CWDIR)
  153.     Debug-Output "OEMNADWD.INF: STF_LANGUAGE is: "$(!STF_LANGUAGE)
  154.     Debug-Output "OEMNADWD.INF: Option is: "$(Option)
  155.     Debug-Output "OEMNADWD.INF: !STF_NCDETECT  is: "$(!STF_NCDETECT)
  156.     Debug-Output "OEMNADWD.INF: !STF_NCOPTION  is: "$(!STF_NCOPTION)
  157.     Debug-Output "OEMNADWD.INF: !STF_NCDETCARD is: "$(!STF_NCDETCARD)
  158.     Debug-Output "OEMNADWD.INF: !STF_NCDETINFO is: "$(!STF_NCDETINFO)
  159.     Debug-Output "OEMNADWD.INF: =================================================="
  160.     Set DetectedCard = FALSE
  161.     Ifstr(i) $(ActivateDetection) != TRUE
  162.         Goto skipdetection
  163.     Endif
  164.     Set TypeList = {{IRQ,IRQ_List,IRQLevel},+
  165.                     {IOADDR, IOBaseAddressDecList, IOBaseValue},+
  166.                     {MEMADDR, WinBaseAddressDecList, WinBaseValue}}
  167.     Debug-Output "OEMNADWD.INF: Calling Param_BuildTypeLists"
  168.     Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
  169.     Set Status = $($R0)
  170.     ifstr(i) $(Status) != STATUS_SUCCESSFUL
  171.         Goto fataldetect
  172.     Endif
  173.     Debug-Output "OEMNADWD.INF: Calling Param_SetDefaults"
  174.     Shell $(ParamInf) Param_SetDefaults {}
  175.     Shell $(ParamInf) HexListFromDecList $(IOBaseAddressDecList)
  176.     Set IOBaseAddressHexList = $($R0)
  177.     Shell $(ParamInf) HexListFromDecList $(WinBaseAddressDecList)
  178.     Set WinBaseAddressHexList = $($R0)
  179.     Ifstr(i) $(!STF_NCDETECT) == YES
  180.         Ifstr(i) $(!STF_NCOPTION) == $(Option)
  181.            Set DetectedCard = TRUE
  182.            Debug-Output "OEMNADWD.INF: Setting DetectedCard to TRUE"
  183.         Endif
  184.     Endif
  185. skipdetection =+
  186.     set from = $(fatal)
  187.     set to = $(fatal)
  188.     goto $(StartLabel)
  189. installadapter = +
  190.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  191.     Ifstr $(KeyProduct) != $(KeyNull)
  192.         CloseRegKey $(KeyProduct)
  193.         ifstr(i) !(NTN_RegBase) == $(ProductKeyName)
  194.            Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  195.                $(ProductVersion)
  196.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  197.                Debug-Output "ShellCode error: cannot get an error string."
  198.                goto ShellCodeError
  199.            endif
  200.            goto end
  201.         else
  202.            Shell $(UtilityInf), CardExistedDlg
  203.            ifint $($ShellCode) != $(!SHELL_CODE_OK)
  204.                Debug-Output "ShellCode error: cannot get an error string."
  205.                goto ShellCodeError
  206.            endif
  207.            ifstr(i) $($R1) != "OK"
  208.                set CommonStatus = STATUS_USERCANCEL
  209.                goto end
  210.            endif
  211.            set OldVersionExisted = $(TRUE)
  212.         endif
  213.     endif
  214.     Ifstr(i) $(DetectedCard) != TRUE
  215.         Goto adaptersetup
  216.     Endif
  217.     StartWait
  218.     Shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD)
  219.     EndWait
  220.     Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  221.         Goto adaptersetup
  222.     Endif
  223.     Set DetectedParams = $($R1)
  224.     Debug-Output "OEMNADWD.INF: Calling Param_SetDefaults to merge detected params"
  225.     Shell $(ParamInf) Param_SetDefaults $(DetectedParams)
  226.     goto adaptersetup
  227. configureadapter = +
  228.     Ifstr $(KeyProduct) == $(KeyNull)
  229.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  230.         Ifstr $(KeyProduct) == $(KeyNull)
  231.             set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  232.             Debug-Output "Cannot find component product key"
  233.             goto fatalregistry
  234.         Endif
  235.     Endif
  236.     Debug-Output "INF: Shelling to FindService"
  237.     Shell $(UtilityInf) FindService, $(KeyProduct)
  238.     Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  239.         Debug-Output "INF: FindService shell failure"
  240.         Goto ShellCodeError
  241.     Endif
  242.     Ifstr(i) $($R0) != NO_ERROR
  243.         Debug-Output "INF: FindService Shell error: "$($R0)
  244.         Goto fatalregistry
  245.     endif
  246.     set KeyParameters = $($R2)
  247.     CloseRegKey $($R1)
  248.     Ifstr $(KeyParameters) == $(KeyNull)
  249.         set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  250.         Debug-Output "Cannot find component service"
  251.         goto fatalregistry
  252.     endif
  253.     set OldVersionExisted = $(TRUE )
  254.     set ValueName = ""
  255.     set ValueData = ""
  256.     set ValueStr  = ""
  257.     set ValueList = {}
  258.     EnumRegValue $(KeyParameters) ValueList
  259.     ForListDo $(ValueList)
  260.         set ValueItem = $($)
  261.         set ValueName = *($(ValueItem),1)
  262.         set ValueData = *($(ValueItem),4)
  263.         Ifstr(i) $(ValueName) == "InterruptNumber"
  264.             set IRQLevel = $(ValueData)
  265.         else-Ifstr(i) $(ValueName) == "IOBaseAddress"
  266.             set IOBaseValue = $(ValueData)
  267.         else-Ifstr(i) $(ValueName) == "MemoryMappedBaseAddress"
  268.             set WinBaseValue = $(ValueData)
  269.         else-ifstr(i) $(ValueName) == "BusType"
  270.             set BusInterfaceType = $(ValueData)
  271.         else-ifstr(i) $(ValueName) == "BusNumber"
  272.             set BusNumber = $(ValueData)
  273.         endif
  274.     EndForListDo
  275. adaptersetup =+
  276.     Shell $(ParamInf) Param_ParameterConfidence
  277.     Ifstr(i) $($R0) != STATUS_SUCCESSFUL
  278.         Debug-Output "OEMNADWD.INF: parameter confidence too low to bypass configuration"
  279.         Goto adapteroptions
  280.     Endif
  281.     Ifstr(i) $(DetectedCard) == TRUE
  282.         Ifstr(i) $(!STF_INSTALL_MODE) != CUSTOM
  283.             set BusInterfaceType = *($(!STF_NCDETINFO),5)
  284.             set BusNumber = *($(!STF_NCDETINFO),6)
  285.             Goto adapterverify
  286.         Endif
  287.     Endif
  288.     goto adapteroptions
  289. adapteroptions = +
  290.     set from = adapteroptions
  291.     ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  292.         ifstr(i) $(!AutoNetInterfaceType) != ""
  293.             set BusInterfaceType = $(!AutoNetInterfaceType)
  294.         else
  295.             set BusInterfaceType = 1    
  296.         endif
  297.         ifstr(i) $(!AutoNetBusNumber) != ""
  298.             set BusNumber = $(!AutoNetBusNumber)
  299.         else
  300.             set BusNumber = 0
  301.         endif
  302.         goto adapterverify
  303.     endif
  304.     set WinBaseAddress = *($(WinBaseAddressHexList), ~($(WinBaseAddressDecList),+
  305.         $(WinBaseValue)))
  306.     set IOBaseAddress = *($(IOBaseAddressHexList), ~($(IOBaseAddressDecList),+
  307.         $(IOBaseValue)))
  308.     read-syms FileDependentDlg$(!STF_LANGUAGE)
  309.     ui start "InputDlg"
  310.     ifstr(i) $(DLGEVENT) == "CONTINUE"
  311.         set IRQLevel = $(Combo1Out)
  312.         set WinBaseAddress = $(Combo2Out)
  313.         set IOBaseAddress = $(Combo3Out)
  314.         ui pop 1
  315.     else-ifstr(i) $(DLGEVENT) == "BACK"
  316.         set CommonStatus = STATUS_USERCANCEL
  317.         Debug-Output "Action: exit. Bye."
  318.         ui pop 1
  319.         goto end
  320.     else
  321.         ui pop 1
  322.         Debug-Output "Action: unknown. Bye."
  323.         goto end
  324.     endif
  325.     set WinBaseValue = *($(WinBaseAddressDecList), ~($(WinBaseAddressHexList),+
  326.         $(WinBaseAddress)))
  327.     set IOBaseValue = *($(IOBaseAddressDecList), ~($(IOBaseAddressHexList),+
  328.         $(IOBaseAddress)))
  329.     ifstr(i) $(!STF_NCDETINFO) == {}
  330.         Shell $(UtilityInf),GetBusTypeDialog,$(ProductHardwareDescription) $(BusInterfaceType) $(BusNumber)
  331.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  332.             Debug-Output "ShellCode error."
  333.             goto ShellCodeError
  334.         endif
  335.         set BusInterfaceType = $($R1)
  336.         set BusNumber = $($R2)
  337.     else
  338.         set BusInterfaceType = *($(!STF_NCDETINFO),5)
  339.         set BusNumber = *($(!STF_NCDETINFO),6)
  340.     endif
  341. adapterverify =+
  342.     Ifstr(i) $(DetectedCard) != TRUE
  343.         Goto skipoptions
  344.     Endif
  345.     Debug-Output "OEMNADWD.INF: Calling Param_VerifyCard"
  346.     Shell $(ParamInf) Param_VerifyCard $(!STF_NCDETCARD)
  347.     Ifstr(i) $($R0) == STATUS_SUCCESSFUL
  348.         Debug-Output "OEMNADWD.INF: Param_VerifyCard succeeded"
  349.         Goto skipoptions
  350.     Endif
  351.     Set from = adapteroptions
  352.     Set to = skipoptions
  353.     Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
  354.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  355.         Debug-Output "ShellCode error: cannot get an error string."
  356.         goto ShellCodeError
  357.     endif
  358.     set Error = $($R0)
  359.     Goto Warning
  360. skipoptions = +
  361.     ifint $(OldVersionExisted) == $(TRUE)
  362.         ifstr(i) $(!NTN_InstallMode) == configure
  363.             goto writeparameters
  364.         endif
  365.     endif
  366.     StartWait
  367.     ifint $(OldVersionExisted) == $(FALSE)
  368.         ifstr(i) $(!NTN_InstallMode) == "install"
  369.            Ifstr(i) $(DoCopy) == "YES"
  370.               Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  371.               Ifint $($ShellCode) != $(!SHELL_CODE_OK)
  372.                   Goto ShellCodeError
  373.               Else-Ifstr(i) $($R0) == STATUS_FAILED
  374.                   Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  375.                   ifint $($ShellCode) != $(!SHELL_CODE_OK)
  376.                       goto ShellCodeError
  377.                   endif
  378.                   set Error = $($R0)
  379.                   Goto fatal
  380.               Else-Ifstr(i) $($R0) == STATUS_USERCANCEL
  381.                   Goto successful
  382.               Endif
  383.               Set SrcDir = $($R1)
  384.            Endif
  385.            install "Install-Option"
  386.            ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  387.               Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  388.               ifint $($ShellCode) != $(!SHELL_CODE_OK)
  389.                   goto ShellCodeError
  390.               endif
  391.               set Error = $($R0)
  392.               goto fatal
  393.            endif
  394.         endif
  395.         Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  396.             $(ProductSoftwareName), +
  397.             $(ProductSoftwareName), +
  398.             $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  399.             $(ProductSoftwareImagePath), "kernel", "NDIS", {}, "",+
  400.             $(NetEventDLL)
  401.         Set OEM_ABANDON_SOFTWARE = TRUE
  402.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  403.             Debug-Output "ShellCode error"
  404.             goto ShellCodeError
  405.         endif
  406.         set RegistryErrorIndex = $($R0)
  407.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  408.             EndWait
  409.             Debug-Output "Registry error: add software components"
  410.             CloseRegKey $($R1)
  411.             CloseRegKey $($R2)
  412.             CloseRegKey $($R3)
  413.             CloseRegKey $($R4)
  414.             CloseRegKey $($R5)
  415.             goto fatalregistry
  416.         endif
  417.         Set SoftProductKey      = $($R1)
  418.         Set SoftNetRuleKey      = $($R2)
  419.         Set SoftServiceKey      = $($R3)
  420.         Set SoftParameterKey    = $($R4)
  421.         Set SoftLinkageKey      = $($R5)
  422.         set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  423.                            {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  424.                            {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  425.                            {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  426.                            {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  427.                            {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  428.                            {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  429.         Shell  $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
  430.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  431.             Debug-Output "ShellCode error."
  432.             goto ShellCodeError
  433.         endif
  434.         set RegistryErrorIndex = $($R0)
  435.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  436.             EndWait
  437.             Debug-Output "Resgitry error: add value list."
  438.             CloseRegKey $(SoftProductKey)
  439.             CloseRegKey $(SoftNetRuleKey)
  440.             CloseRegKey $(SoftServiceKey)
  441.             CloseRegKey $(SoftParameterKey)
  442.             CloseRegKey $(SoftLinkageKey)
  443.             goto fatalregistry
  444.         endif
  445.         set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  446.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  447.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  448.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  449.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  450.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  451.         Shell  $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
  452.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  453.             Debug-Output "ShellCode error."
  454.             goto ShellCodeError
  455.         endif
  456.         set RegistryErrorIndex = $($R0)
  457.         CloseRegKey $(SoftProductKey)
  458.         CloseRegKey $(SoftNetRuleKey)
  459.         CloseRegKey $(SoftServiceKey)
  460.         CloseRegKey $(SoftParameterKey)
  461.         CloseRegKey $(SoftLinkageKey)
  462.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  463.             EndWait
  464.             Debug-Output "Resgitry error: add value list."
  465.             goto fatalregistry
  466.         endif
  467.     endif
  468.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  469.     ifint $($R4) != -1
  470.         Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  471.     endif
  472.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  473.         Debug-Output "Cannot add hardware component"
  474.         goto ShellCodeError
  475.     endif
  476.     set RegistryErrorIndex = $($R0)
  477.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  478.         EndWait
  479.         Debug-Output "Registry error: add hardware component"
  480.         Debug-Output $(RegistryErrorIndex)
  481.         CloseRegKey $($R1)
  482.         CloseRegKey $($R2)
  483.         CloseRegKey $($R3)
  484.         goto fatalregistry
  485.     endif
  486.     set KeyParameters = $($R3)
  487.     set KeyAdapterRules = $($R2)
  488.     set AdapterNumber = $($R4)
  489.     set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  490.                        {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+
  491.                        {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescription)},+
  492.                        {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  493.                        {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  494.                        {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)},+
  495.                        {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  496.     Shell  $(UtilityInf), AddValueList, $($R1), $(NewValueList)
  497.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  498.         Debug-Output "ShellCode error"
  499.         goto ShellCodeError
  500.     endif
  501.     CloseRegKey $($R1)
  502.     set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  503.     set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  504.     set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  505.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  506.                         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  507.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  508.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  509.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  510.         Debug-Output "ShellCode error."
  511.         goto ShellCodeError
  512.     endif
  513.     set RegistryErrorIndex = $($R0)
  514.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  515.         EndWait
  516.         Debug-Output "Resgitry error: add value list."
  517.         CloseRegKey $(KeyParameters)
  518.         CloseRegKey $(KeyAdapterRules)
  519.         goto fatalregistry
  520.     endif
  521.     CloseRegKey $(KeyAdapterRules)
  522.     goto writeparameters
  523. writeparameters = +
  524.     IfContains $(Option) in $(EthernetCards)
  525.         set CardMediaType = 1
  526.         set NewValueList = {+
  527.                        {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(IRQLevel)},+
  528.                        {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+
  529.                        {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
  530.                        {IOBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseValue)},+
  531.                        {MemoryMappedBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(WinBaseValue)},+
  532.                        {MediaType,$(NoTitle),$(!REG_VT_DWORD),$(CardMediaType)}+
  533.                        }
  534.     else
  535.         set CardMediaType = 2
  536.         set NewValueList = {+
  537.                        {InterruptNumber,$(NoTitle),$(!REG_VT_DWORD),$(IRQLevel)},+
  538.                        {BusType,$(NoTitle),$(!REG_VT_DWORD),$(BusInterfaceType)},+
  539.                        {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNumber)},+
  540.                        {IOBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOBaseValue)},+
  541.                        {MemoryMappedBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(WinBaseValue)},+
  542.                        {MediaType,$(NoTitle),$(!REG_VT_DWORD),$(CardMediaType)},+
  543.                        {MaximumPacketSize,$(NoTitle),$(!REG_VT_DWORD),8192}+
  544.                        }
  545.     endif
  546.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)
  547.     ifstr(i) $(!STF_GUI_UNATTENDED) == "YES"
  548.         Shell $(UtilityInf),AddDefaultNetCardParameters,$(KeyParameters)
  549.     endif
  550.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  551.         Debug-Output "ShellCode error."
  552.         goto ShellCodeError
  553.     endif
  554.     set RegistryErrorIndex = $($R0)
  555.     CloseRegKey $(KeyParameters)
  556.     Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  557.         Debug-Output "Registry error: Add value list"
  558.         goto fatalregistry
  559.     endif
  560.     EndWait
  561.     goto successful
  562. bindingadapter =+
  563.     set Error = "Binding: Sorry, not yet implemented."
  564.     goto fatal
  565. removeadapter = +
  566.     Ifstr(i) $(ProductKeyName) == $(!NTN_RegBase)
  567.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  568.             $(ProductSoftwareName)
  569.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  570.             Debug-Output "ShellCode error"
  571.             goto ShellCodeError
  572.         endif
  573.         set RegistryErrorIndex = $($R0)
  574.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  575.             goto fatalregistry
  576.         endif
  577.     else
  578.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  579.             $(ProductSoftwareName), $(!NTN_RegBase)
  580.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  581.             Debug-Output "ShellCode error"
  582.             goto ShellCodeError
  583.         endif
  584.         set RegistryErrorIndex = $($R0)
  585.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  586.             goto fatalregistry
  587.         endif
  588.     endif
  589.     goto end
  590. UpgradeSoftware = +
  591.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  592.     Ifstr $(KeyProduct) != $(KeyNull)
  593.         install "Install-Update"
  594.         ifstr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  595.             goto fatal
  596.         endif
  597.         SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  598.         SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  599.         CloseRegKey $(KeyProduct)
  600.         LibraryProcedure Result, $(!LIBHANDLE), SetupChangeServiceConfig, "SMC8000N", $(SERVICE_NO_CHANGE), $(SERVICE_NO_CHANGE), $(SERVICE_NO_CHANGE), "\SystemRoot\System32\drivers\smcisa.sys", "", "", "", "", ""
  601.     else
  602.         goto fatalregistry
  603.     endif
  604.     set iSearch = 1
  605. nextnetcard = +
  606.     Shell $(UtilityInf), FindNextNetworkCard, $(ProductHardwareName), $(iSearch)
  607.     set KeyNetcard = $($R0)
  608.     set iSearch = $($R1)
  609.     Debug-Output "OemNadEp.Inf: FindNextNetworkCard "$(KeyNetcard)","$(iSearch)
  610.     Ifstr $(KeyNetcard) != $(KeyNull)
  611.         Debug-Output "OemNadEp.Inf: Setting OperationsSupport value"
  612.         SetRegValue $(KeyNetcard) {OperationsSupport,$(NoTitle),$(!REG_VT_DWORD),$(ProductOpSupport)}
  613.         CloseRegKey $(KeyNetcard)
  614.         goto nextnetcard
  615.     Endif
  616.     goto end
  617. successful = +
  618.     goto end
  619. abandon = +
  620.     ForListDo $(OEM_ABANDON_OPTIONS)
  621.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  622.             $(ProductSoftwareName), $($)
  623.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  624.             Debug-Output "ShellCode error"
  625.             goto ShellCodeError
  626.         endif
  627.         set RegistryErrorIndex = $($R0)
  628.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  629.             goto fatalregistry
  630.         endif
  631.     EndForListDo
  632.     Ifstr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  633.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  634.             $(ProductSoftwareName), FALSE
  635.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  636.             Debug-Output "ShellCode error"
  637.             goto ShellCodeError
  638.         endif
  639.         set RegistryErrorIndex = $($R0)
  640.         Ifstr(i) $(RegistryErrorIndex) != NO_ERROR
  641.             goto fatalregistry
  642.         endif
  643.     endif
  644.     goto end
  645. warning = +
  646.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  647.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  648.         goto ShellCodeError
  649.     endif
  650.     ifstr(i) $($R1) == "OK"
  651.         goto $(to)
  652.     else-ifstr(i) $($R1) == "CANCEL"
  653.         goto $(from)
  654.     else
  655.         goto "end"
  656.     endif
  657. nonfatalinfo = +
  658.     Set CommonStatus = STATUS_USERCANCEL
  659.     Set Severity = STATUS
  660.     goto nonfatalmsg
  661. nonfatal = +
  662.     Set Severity = NONFATAL
  663.     goto nonfatalmsg
  664. nonfatalmsg = +
  665.     ifstr(i) $(Error) == ""
  666.         Set Severity = NONFATAL
  667.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  668.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  669.             goto ShellCodeError
  670.         endif
  671.         set Error = $($R0)
  672.     endif
  673.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  674.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  675.         goto ShellCodeError
  676.     endif
  677.     ifstr(i) $($R1) == "OK"
  678.         goto $(from)
  679.     else
  680.         goto "end"
  681.     endif
  682. fatalregistry = +
  683.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  684.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  685.         goto ShellCodeError
  686.     endif
  687.     set Error = $($R0)
  688.     goto fatal
  689. fataldetect = +
  690.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  691.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  692.         Debug-Output "ShellCode error: cannot get an error string."
  693.         goto ShellCodeError
  694.     endif
  695.     set Error = $($R0)
  696.     Goto fatal
  697. fatal = +
  698.     ifstr(i) $(Error) == ""
  699.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  700.         ifint $($ShellCode) != $(!SHELL_CODE_OK)
  701.             goto ShellCodeError
  702.         endif
  703.         set Error = $($R0)
  704.     endif
  705.     Shell $(subroutineinf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  706.     ifint $($ShellCode) != $(!SHELL_CODE_OK)
  707.         goto ShellCodeError
  708.     endif
  709.     goto setfailed
  710. ShellCodeError = +
  711.     set DlgType      = "MessageBox"
  712.     set STF_MB_TITLE = $(ShellCodeErrorTitle)
  713.     set STF_MB_TEXT  = $(ShellCodeErrorText)
  714.     set STF_MB_TYPE  = 1
  715.     set STF_MB_ICON  = 3
  716.     set STF_MB_DEF   = 1
  717.     ui start "Error Message"
  718.     goto setfailed
  719. setfailed = +
  720.     set CommonStatus = STATUS_FAILED
  721.     ifstr(i) $(OEM_ABANDON_ON) == TRUE
  722.         set OEM_ABANDON_ON = FALSE
  723.         goto abandon
  724.     endif
  725.     goto end
  726. end = +
  727.     goto term
  728. term = +
  729.     Return $(CommonStatus)
  730. [Install-Option]
  731.     set STF_VITAL = ""
  732.     ifstr(i) $(AddCopy) == "YES"
  733.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  734.     endif
  735.     ifstr(i) $(DoCopy) == "YES"
  736.        set !STF_NCPA_FLUSH_COPYLIST = TRUE
  737.        CopyFilesInCopyList
  738.     endif
  739.     ifstr(i) $(DoConfig) == "YES"
  740.     endif
  741.     Exit
  742. [Install-Update]
  743.    set STF_VITAL        = ""
  744.    set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  745.    AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  746.    exit
  747. [Source Media Descriptions]
  748.     1 = "Windows NT Server CD-ROM", TAGFILE = cdrom_s.40
  749. [Signature]
  750.     FileType = MICROSOFT_FILE
  751. [GetSignature]
  752.     read-syms Signature
  753.     return $(FileType)
  754. [ProductType]
  755. STF_PRODUCT  = LanmanNT
  756. STF_PLATFORM = I386
  757. [Files-Inf]
  758. 2,    oemsetup.inf,     SIZE=1000,    RENAME=$(!UG_Filename)
  759. [Files-SMCISA]
  760. 1,SMCISA.SYS , SIZE=999
  761. [LanguagesSupported]
  762.     ENG
  763. [OptionsTextENG]
  764.     SMCISA = "SMC (WD) EtherCard"
  765. [FileConstantsENG]
  766. ProCaption   = "Windows NT Setup"
  767. ProCancel    = "Cancel"
  768. ProCancelMsg = "Windows NT Networking is not correctly installed.  "+
  769.                "Are you sure you want to cancel copying files?"
  770. ProCancelCap = "Network Setup Message"
  771. ProText1     = "Copying:"
  772. ProText2     = "To:"
  773. FunctionTitle   = "SMC (WD) ISA Adapter Card Setup"
  774. ProductSoftwareDescription      = "SMC (WD) Adapter Driver"
  775. ProductHardwareDescription      = "SMC (WD) ISA Adapter"
  776. ProductSoftwareTitle    = "SMC (WD) Adapter Driver"
  777. ProductHardwareTitle    = "SMC (WD) ISA Adapter"
  778. ShellCodeErrorTitle     = "Error: "$(FunctionTitle)
  779. ShellCodeErrorText      = "Shell Code Error."
  780. [DialogConstantsENG]
  781. Help        = "&Help"
  782. Exit        = "Cancel"
  783. OK          = "OK"
  784. HelpContext = ""
  785. Continue    = "Continue"
  786. Cancel      = "Cancel"
  787. [FileDependentDlgENG]
  788. Combo1Label = "&IRQ Level:"
  789. Combo2Label = "&Memory Base Address:"
  790. Combo3Label = "I/&O Port Address:"
  791. DlgType = "MultiCombo"
  792. DlgTemplate = "WD"
  793. Caption = $(FunctionTitle)
  794. Combo1List = $(IRQ_List)
  795. Combo1Out  = $(IRQLevel)
  796. Combo2List = $(WinBaseAddressHexList)
  797. Combo2Out  = $(WinBaseAddress)
  798. Combo3List = $(IOBaseAddressHexList)
  799. Combo3Out  = $(IOBaseAddress)
  800. ComboListItemsIn  = {Combo1List, Combo2List, Combo3List}
  801. ComboListItemsOut = {Combo1Out, Combo2Out, Combo3Out}
  802. EditTextIn = ""
  803. EditTextLim = ""
  804. NotifyFields = {NO, NO, NO}
  805. HelpContext = $(!IDH_DB_OEMNADWD_INS)
  806.